package lt.vu.mif.os.commands;
/**
* Abstract commands list which one's virtual machine performs.
* 
* @author Antanas Rudaitis
* @author Laurynas Paradauskas
* @author Algirdas Šaltupis
* 
*/
public abstract class Commands {
	
	/* Mathematical */

	public abstract void add();
	public abstract void sub();
	public abstract void mul();
	public abstract void div();
        public abstract void inc();
        public abstract void dec();
	
	/* Comparison */
	public abstract void cmp();
	
	/* With data/stack */
	
	public abstract void ld(int x, int y);
	public abstract void pt(int x, int y);
        public abstract void pun(int x);
	
	/* Control(Jumps) */
	
	public abstract void jp(int x, int y);
	public abstract void je(int x, int y);
	public abstract void jl(int x, int y);
	public abstract void jg(int x, int y);
	public abstract void halt();
	
	/* INPUT/OUTPUT */
	
	public abstract void prnt();
	public abstract void p(int x, int y, int z);
	public abstract void read();
}
